# -*- coding: utf-8 -*-
# 寻找完美数，因子之和等于该数
# 程序分析：将每一对因子加进集合，在这个过程中已经自动去重。最后的结果要求不计算其本身。

def factor(num):
    target = int(num)
    res = set()
    for i in range(1, num):
        if num % i == 0:
            res.add(i)
            res.add(num/i)
    return res


print("完数有:")
for i in range(2, 10001):
    if i == sum(factor(i))-i:
        print(i)
